/*
 * Copyright 2009 Jinbo Lin. All rights reserved.
 * 
 * cn.edu.pku.model OfficeAutomation
 *
 * Created on 2009-12-25
 */
package cn.edu.pku.model;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * @author Jinbo Lin
 * 
 * 
 */
public class User implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -7580877787406307868L;
	private int userId;
	private String userName;
	private String password;
	private Dept dept;
	private Theme theme;
	private User creator;
	private Date dateTime;
	private String realName;
	private String gender;
	private String address;
	private String email;
	private String phone;
	private String zip;
	private Date birthday;
	private String education;
	private User auditor;
	private String audit;
	private Date auditDateTime;
	private String removed;
	private String remark;

	private Set<Role> roles = new HashSet<Role>();
	private Set<Privilege> privileges = new HashSet<Privilege>();
	private Set<Task> tasks = new HashSet<Task>();
	private Set<Meeting> meetings = new HashSet<Meeting>();

	/**
	 * @return the userId
	 */
	public int getUserId() {
		return this.userId;
	}

	/**
	 * @param userId
	 *            the userId to set
	 */
	public void setUserId(int userId) {
		this.userId = userId;
	}

	/**
	 * @return the userName
	 */
	public String getUserName() {
		return this.userName;
	}

	/**
	 * @param userName
	 *            the userName to set
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {
		return this.password;
	}

	/**
	 * @param password
	 *            the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * @return the dept
	 */
	public Dept getDept() {
		return this.dept;
	}

	/**
	 * @param dept
	 *            the dept to set
	 */
	public void setDept(Dept dept) {
		this.dept = dept;
	}

	/**
	 * @return the theme
	 */
	public Theme getTheme() {
		return this.theme;
	}

	/**
	 * @param theme
	 *            the theme to set
	 */
	public void setTheme(Theme theme) {
		this.theme = theme;
	}

	/**
	 * @return the creator
	 */
	public User getCreator() {
		return this.creator;
	}

	/**
	 * @param creator
	 *            the creator to set
	 */
	public void setCreator(User creator) {
		this.creator = creator;
	}

	/**
	 * @return the dateTime
	 */
	public Date getDateTime() {
		return this.dateTime;
	}

	/**
	 * @param dateTime
	 *            the dateTime to set
	 */
	public void setDateTime(Date dateTime) {
		this.dateTime = dateTime;
	}

	/**
	 * @return the realName
	 */
	public String getRealName() {
		return this.realName;
	}

	/**
	 * @param realName
	 *            the realName to set
	 */
	public void setRealName(String realName) {
		this.realName = realName;
	}

	/**
	 * @return the gender
	 */
	public String getGender() {
		return this.gender;
	}

	/**
	 * @param gender
	 *            the gender to set
	 */
	public void setGender(String gender) {
		this.gender = gender;
	}

	/**
	 * @return the address
	 */
	public String getAddress() {
		return this.address;
	}

	/**
	 * @param address
	 *            the address to set
	 */
	public void setAddress(String address) {
		this.address = address;
	}

	/**
	 * @return the email
	 */
	public String getEmail() {
		return this.email;
	}

	/**
	 * @param email
	 *            the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * @return the phone
	 */
	public String getPhone() {
		return this.phone;
	}

	/**
	 * @param phone
	 *            the phone to set
	 */
	public void setPhone(String phone) {
		this.phone = phone;
	}

	/**
	 * @return the zip
	 */
	public String getZip() {
		return this.zip;
	}

	/**
	 * @param zip
	 *            the zip to set
	 */
	public void setZip(String zip) {
		this.zip = zip;
	}

	/**
	 * @return the birthday
	 */
	public Date getBirthday() {
		return this.birthday;
	}

	/**
	 * @param birthday
	 *            the birthday to set
	 */
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	/**
	 * @return the education
	 */
	public String getEducation() {
		return this.education;
	}

	/**
	 * @param education
	 *            the education to set
	 */
	public void setEducation(String education) {
		this.education = education;
	}

	/**
	 * @return the auditor
	 */
	public User getAuditor() {
		return this.auditor;
	}

	/**
	 * @param auditor
	 *            the auditor to set
	 */
	public void setAuditor(User auditor) {
		this.auditor = auditor;
	}

	/**
	 * @return the audit
	 */
	public String getAudit() {
		return this.audit;
	}

	/**
	 * @param audit
	 *            the audit to set
	 */
	public void setAudit(String audit) {
		this.audit = audit;
	}

	/**
	 * @return the auditDateTime
	 */
	public Date getAuditDateTime() {
		return this.auditDateTime;
	}

	/**
	 * @param auditDateTime
	 *            the auditDateTime to set
	 */
	public void setAuditDateTime(Date auditDateTime) {
		this.auditDateTime = auditDateTime;
	}

	/**
	 * @return the removed
	 */
	public String getRemoved() {
		return this.removed;
	}

	/**
	 * @param removed
	 *            the removed to set
	 */
	public void setRemoved(String removed) {
		this.removed = removed;
	}

	/**
	 * @return the remark
	 */
	public String getRemark() {
		return this.remark;
	}

	/**
	 * @param remark
	 *            the remark to set
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * @return the roles
	 */
	public Set<Role> getRoles() {
		return this.roles;
	}

	/**
	 * @param roles
	 *            the roles to set
	 */
	public void setRoles(Set<Role> roles) {
		this.roles = roles;
	}

	/**
	 * @return the privileges
	 */
	public Set<Privilege> getPrivileges() {
		return this.privileges;
	}

	/**
	 * @param privileges
	 *            the privileges to set
	 */
	public void setPrivileges(Set<Privilege> privileges) {
		this.privileges = privileges;
	}

	/**
	 * @return the tasks
	 */
	public Set<Task> getTasks() {
		return this.tasks;
	}

	/**
	 * @param tasks
	 *            the tasks to set
	 */
	public void setTasks(Set<Task> tasks) {
		this.tasks = tasks;
	}

	/**
	 * @return the meetings
	 */
	public Set<Meeting> getMeetings() {
		return this.meetings;
	}

	/**
	 * @param meetings
	 *            the meetings to set
	 */
	public void setMeetings(Set<Meeting> meetings) {
		this.meetings = meetings;
	}

	/**
	 * 
	 */
	public User() {
	}

	/**
	 * @param userId
	 * @param userName
	 * @param password
	 * @param dept
	 * @param theme
	 * @param creator
	 * @param dateTime
	 */
	public User(int userId, String userName, String password, Dept dept,
			Theme theme, User creator, Date dateTime) {
		super();
		this.userId = userId;
		this.userName = userName;
		this.password = password;
		this.dept = dept;
		this.theme = theme;
		this.creator = creator;
		this.dateTime = dateTime;
	}

	/**
	 * @param userId
	 * @param userName
	 * @param password
	 * @param dept
	 * @param theme
	 * @param creator
	 * @param dateTime
	 * @param realName
	 * @param gender
	 * @param address
	 * @param email
	 * @param phone
	 * @param zip
	 * @param birthday
	 * @param education
	 * @param auditor
	 * @param audit
	 * @param auditDateTime
	 * @param removed
	 * @param remark
	 * @param roles
	 * @param privileges
	 * @param tasks
	 * @param meetings
	 */
	public User(int userId, String userName, String password, Dept dept,
			Theme theme, User creator, Date dateTime, String realName,
			String gender, String address, String email, String phone,
			String zip, Date birthday, String education, User auditor,
			String audit, Date auditDateTime, String removed, String remark,
			Set<Role> roles, Set<Privilege> privileges, Set<Task> tasks,
			Set<Meeting> meetings) {
		super();
		this.userId = userId;
		this.userName = userName;
		this.password = password;
		this.dept = dept;
		this.theme = theme;
		this.creator = creator;
		this.dateTime = dateTime;
		this.realName = realName;
		this.gender = gender;
		this.address = address;
		this.email = email;
		this.phone = phone;
		this.zip = zip;
		this.birthday = birthday;
		this.education = education;
		this.auditor = auditor;
		this.audit = audit;
		this.auditDateTime = auditDateTime;
		this.removed = removed;
		this.remark = remark;
		this.roles = roles;
		this.privileges = privileges;
		this.tasks = tasks;
		this.meetings = meetings;
	}
	
}